
<?php
/*
  ********************************************************************************************
  CONFIGURATION
  ********************************************************************************************
*/
// destinataire est votre adresse mail. Pour envoyer à plusieurs à la fois, séparez-les par une virgule
$destinataire = 'moi@fournisseur.tld';

// copie ? (envoie une copie au visiteur)
$copie = 'non';

// Action du formulaire (si votre page a des paramètres dans l'URL)
// si cette page est index.php?page=contact alors mettez index.php?page=contact
// sinon, laissez vide
$form_action = '';

/*
  ********************************************************************************************
  FIN DE LA CONFIGURATION
  ********************************************************************************************
*/

/*
 * cette fonction sert à nettoyer et enregistrer un texte
 */
function Rec($text)
{
  $text = htmlspecialchars(trim($text), ENT_QUOTES);
  if (1 === get_magic_quotes_gpc())
  {
    $text = stripslashes($text);
  }

  $text = nl2br($text);
  return $text;
};

/*
 * Cette fonction sert à vérifier la syntaxe d'un email
 */
function IsEmail($email)
{
  $value = preg_match('/^(?:[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+\.)*[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+@(?:(?:(?:[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!\.)){0,61}[a-zA-Z0-9_-]?\.)+[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!$)){0,61}[a-zA-Z0-9_]?)|(?:\[(?:(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\.){3}(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\]))$/', $email);
  return (($value === 0) || ($value === false)) ? false : true;
}

// formulaire envoyé, on récupère tous les champs.
$nom        = (isset($_POST['nom']))        ? Rec($_POST['nom'])        : '';
$prenom     = (isset($_POST['prenom']))     ? Rec($_POST['prenom'])     : '';
$email      = (isset($_POST['email']))      ? Rec($_POST['email'])      : '';
$telephone  = (isset($_POST['telephone']))  ? Rec($_POST['telephone'])  : '';
$objet      = (isset($_POST['objet']))      ? Rec($_POST['objet'])      : '';
$message    = (isset($_POST['message']))    ? Rec($_POST['message'])    : '';
$copie      = (isset($_POST['copie']))      ? Rec($_POST['copie'])      : '';

// On va vérifier les variables et l'email ...
$email = (IsEmail($email)) ? $email : ''; // soit l'email est vide si erroné, soit il vaut l'email entré
$err_formulaire = false; // sert pour remplir le formulaire en cas d'erreur si besoin

if (isset($_POST['envoi']))
{
  if (($nom != '') && ($prenom != '') && ($email != '') && ($telephone != '') && ($objet != '') && ($message != ''))
  {
    // les 4 variables sont remplies, on génère puis envoie le mail
    $headers  = 'From:'.$nom.' <'.$email.'>' . "\r\n";
    //$headers .= 'Reply-To: '.$email. "\r\n" ;
    //$headers .= 'X-Mailer:PHP/'.phpversion();

    $objet = 'Nom: '.$nom.', Prénom: '.$prenom.', Téléphone: '.$telephone.', Objet: '.$objet;

    // envoyer une copie au visiteur ?
    if ($copie == 'oui')
    {
      $cible = $destinataire.','.$email;
    }
    else
    {
      $cible = $destinataire;
    };

    // Remplacement de certains caractères spéciaux
    $message = str_replace("&#039;","'",$message);
    $message = str_replace("&#8217;","'",$message);
    $message = str_replace("&quot;",'"',$message);
    $message = str_replace('<br>','',$message);
    $message = str_replace('<br />','',$message);
    $message = str_replace("&lt;","<",$message);
    $message = str_replace("&gt;",">",$message);
    $message = str_replace("&amp;","&",$message);

    // Envoi du mail
    if (mail($cible, $objet, $message, $headers))
    {
      echo '<div class="alert alert-success" id="alert-success">Votre message nous est bien parvenu. Merci ...</div>';
    }
    else
    {
      echo '<div class="alert alert-danger" id="alert-danger">L\'envoi du mail a échoué. Veuillez réessayer s\'il vous plaît ...</div>';
    };
  }
  else
  {
    // une des 3 variables (ou plus) est vide ...
    echo '<div class="alert alert-success" id="alert-warning">Vérifiez que tous les champs soient bien remplis et que l\'email soit sans erreur.</div>';
    $err_formulaire = true;
  };
}; // fin du if (!isset($_POST['envoi']))

//if (($err_formulaire) || (!isset($_POST['envoi'])))
//{
  // afficher le formulaire
  echo '
      <!-- Main -->
      <div class="page-header">
      <h2 class="text-center">Formulaire de contact</h2>
      </div>
      <div class="container">
      <div class="col-md-1">
      </div> 
      <div class="col-md-10">
        <div class="jumbotron">
          <form role="form"  method="POST" action="'.$form_action.'">
            <div class="row form-group">
              <br>
              <div class="col-xs-6">
                <input class="form-control" id="nom" name="nom" value="'.stripslashes($nom).'" placeholder="Nom" required="" type="text">
              </div>            
              <div class="col-xs-6">
                <input class="form-control" id="prenom" name="prenom" value="'.stripslashes($prenom).'" placeholder="Prénom" required="" type="text">            
              </div>        
            </div>        
            <div class="row form-group">            
              <div class="col-xs-6">                
                <input class="form-control" name="email" id="email" value="'.stripslashes($email).'" placeholder="Email" required="" type="email">
              </div>
              <div class="col-xs-6">                
                <input class="form-control" name="telephone" id="telephone" value="'.stripslashes($telephone).'" placeholder="Téléphone" required="" type="text">
              </div>        
            </div>      
            <div class="row form-group">            
              <div class="col-xs-12">                
                <input class="form-control" name="objet" id="objet" value="'.stripslashes($objet).'" placeholder="Objet de votre message" required="" type="text">
              </div>        
            </div>
            <div class="row form-group">            
              <div class="col-xs-12">                
                <textarea class="form-control" name="message" id="message" value="'.stripslashes($message).'" placeholder="Votre message" rows="5"></textarea>
              </div>        
            </div>
            <div class="checkbox">
            <label>
              <input type="checkbox" name="copie" id="copie" value="oui"> Vous envoyer une copie du message
            </label>
          </div>
            <div class="row form-group">            
              <div class="col-xs-12">                
                <button class="btn btn-primary btn-default pull-right" name="envoi" type="submit">Envoyer</button>
              </div>        
            </div>
          </form>
        </div>
      </div>
      <div class="col-md-1">
      </div> 
<!--/row-->'
      ;

?>
